home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Extra 1996 #3 / AmigaPlus_CD-ROM-EXTRA_Nr.3.bin / aminet-spiele / zwei spieler / ssw / ssw.doc < prev    next >
Text File  |  1995-03-01  |  41KB  |  1,024 lines

  1.  
  2.  
  3.  
  4.  
  5.         Solar System Wars -- Version 1.38
  6.  
  7. Copyright © 1992-1995 James Cleverdon.    All Rights Reserved.
  8.  
  9. The binary copy of THIS version of SSW and its other files may be
  10. freely distributed for non-commercial purposes, including and
  11. especially by Fred Fish's wonderful collection of software, as well as
  12. the great AmiNet system, world-wide.
  13.  
  14. More legal garbage and disclaimers below.
  15.  
  16.  
  17.  
  18.            New Features for Version 1.38
  19.  
  20. * Fixed bug that sometimes left torpedo pixels on the screen when a
  21.   Cluster Pod popped.
  22.  
  23. * Fixed glitch in joystick routines that made a Cloaked ship flicker if
  24.   you tried Hyperspace at the same time.
  25.  
  26. * Made the Disruptor more disruptive.  When hit, a ship will accelerate
  27.   with quad thrust while spinning.
  28.  
  29.  
  30.  
  31.                 Requirements
  32.  
  33. * Runs under OS 1.3, 2.0+, and 3.0+.
  34.  
  35. * Needs at least 194K of Fast RAM and 49K of Chip RAM, assuming you use
  36.   the supplied SSW.snd file.  (Heavily fragmented memory may prevent
  37.   SSW from running, even if there is enough chip and fast RAM listed by
  38.   the Avail command.)
  39.  
  40. * Only needs 5K of stack space, but I'm keeping SAS/C's default of 8K
  41.   in SSW.info to be safe.
  42.  
  43. * Requires all of the hardware sprites, all 4 audio channels, and the
  44.   potgo.resource bits for gameport unit 1.
  45.  
  46. * Works with one-button digital joysticks (standard Amiga joysticks),
  47.   but three-button or two-button joysticks are strongly advised.
  48.   Instructions for joystick re-wire are included below.  Does not
  49.   support analog joysticks or Sega gamepads (mostly, see note below).
  50.  
  51.  
  52.  
  53.                Quick Start-up
  54.  
  55. * Install SSW.
  56.     + If SSW isn't compressed and came on a floppy, either run it from
  57.       the floppy (label it SSW:), or just drag the SSW drawer to RAM or
  58.       onto your hard drive.
  59.     + If SSW came compressed, or was downloaded, create a drawer named
  60.       SSW and decompress the archive file in the usual way:
  61.     * Make a new drawer (directory) named SSW
  62.     * open up a shell and CD SSW
  63.     If you have SSW.lha:  lha -x -a -m x SSW.lha
  64.  
  65. * Have a joystick plugged into Joyport 1, and either be ready to plug
  66.   in a second joystick into Joyport 0, or familiarize yourself with the
  67.   keyboard control keys.  If you have two-button or three-button
  68.   joysticks now is the time to use them!  Or, you can use ordinary one-
  69.   button joysticks and some keys on the keyboard.
  70.  
  71. * Start up SSW.  Use either the Workbench or the Shell.  Be sure that
  72.   either its files are in the drawer with SSW, or else enter in the
  73.   Shell:
  74.  
  75.     assign SSW: drawer_containing_files
  76.  
  77.   If SSW lives on its own floppy disk, label it SSW.
  78.  
  79.     relabel df0: SSW
  80.  
  81. * Select any desired options from the menu with the mouse or keyboard.
  82.   (See below for a list of menu command keys.  Also, a file named
  83.   Menu.keys has been provided for easy reference and printing.)
  84.   An especially fun option is the Random Game (RightAmiga-R), which
  85.   will randomly select solar systems for each round, along with a
  86.   random extra weapon for each player.    There are also menus for photon
  87.   torpedo velocity, torpedo life, ship thrust, etc.
  88.  
  89. * If you will be playing with two joysticks, then replace the mouse
  90.   with the second one now.  Then press RightAmiga-1 to switch
  91.   to joystick control.
  92.  
  93. * Enjoy!  The first player to reach 20 points wins!
  94.  
  95. * After the end of a game, press 'O' to start a new game, or start one
  96.   earlier using RightAmiga-N.
  97.  
  98.  
  99.  
  100.            Joystick and Keyboard Control
  101.  
  102.   Joystick control:
  103.     Button1  : Fire photon torpedo
  104.     Left/Rght: Turn Left/Right
  105.     Forward  : Thrust
  106.     Back     : Hyperspace
  107.     Button2  : Extra weapon
  108.     Button3  : Full Shields
  109.     (If you do not have two-button joysticks, for the Extra Weapon use:
  110.      port 0:  RightShiftENTER,
  111.      port 1:  LeftShift
  112.      If you lack three-button joysticks, for keyboard Full Shields use:
  113.      port 0:  RightAltPad .
  114.      port 1:  LeftAlt
  115.     )
  116.  
  117.   Keyboard control:
  118.    (the numbers and period are on the keypad, not on the keyboard)
  119.     DOWN,   5: Fire photon torpedo
  120.     RETURN, 0: Hyperspace
  121.     LEFT,   4: Turn Left
  122.     RIGHT,  6: Turn Right
  123.     UP,     8: Thrust
  124.     RSHIFT, 2: Extra weapon
  125.     RAlt,   .: Full Shields
  126.     7         : Left & Thrust
  127.     9         : Right & Thrust
  128.  
  129.   Program control:
  130.     ESC,    Q: Quit
  131.     P         : Pause
  132.     HELP     : Displays Help requester
  133.  
  134.  
  135.  
  136.                Common Gotchas
  137.  
  138. * Make sure the files named SSW.grv and SSW.snd are in the
  139.   current directory, or located at the SSW: assignment.  Otherwise, SSW
  140.   will complain and die.
  141.  
  142. * You may need to adjust the screen position Preferences in order to
  143.   see the seventh sprite.  In other words, if the purple ship's plasma
  144.   bolt or seeker don't show up on the screen, do the following:
  145.     + quit SSW -- type 'Q', followed by 'Y'
  146.     + open the Preferences program for OS 1.3, or for OS 2.X
  147.       and beyond, run the Overscan program in the Prefs drawer
  148.       then select  Edit Standard Overscan.
  149.     + shift the default screen position a little bit to the right
  150.     + leave via the Use gadget
  151.     + run SSW again
  152.   Keep trying this until you find a screen position that allows the
  153.   7th sprite to appear, and best fits your monitor.  Once you have
  154.   this, either save this setting in Preferences, or use one of the
  155.   public domain Preferences savers to save this setting in a file for
  156.   easy recall later.  (Prefs savers are available on Fred Fish disks,
  157.   AmiNet, and many BBSs.)
  158.  
  159. * If you've forgotten to press RightAmiga-1, then a joystick
  160.   plugged into the mouse joyport won't do anything useful.
  161.  
  162. * If a four star or four asteroid system is on the screen, then the
  163.   mouse will be turned off -- even if one player is using the keyboard.
  164.  
  165. * If you have an AGA Amiga, run SSW in EGA emulation mode.
  166.  
  167.  
  168.  
  169.               Menus Explained
  170.  
  171. A = Right Amiga Key, C = Control Key, other keys such as ESC are named.
  172. (i.e. AC-A means hold down RightAmiga and Control, then press 'A'.)
  173.  
  174. Project
  175.   Pause?           A-P        Pause the game
  176.   New               A-N        Start a New game
  177.   About...           HELP, AC-A
  178.   Screen To Front      A-[        Move the SSW screen to front
  179.   Screen To Back       A-]        Push the SSW screen to back
  180.   Quit...           A-Q        Leave SSW
  181.  
  182. System
  183.   No Primaries           A-Z        No stars at all
  184.   One Primary                Your ship orbits one star
  185.     Red Dwarf           A-E
  186.     Yellow Star        A-Y
  187.     Blue Giant           AC-S
  188.     Small Black Hole   A-T
  189.     Medium Black Hole  A-U
  190.     Large Black Hole   A-I
  191.   Two Primaries             Your ship orbits two stars
  192.     Red Dwarves        A-O
  193.     Red / Yellow       A-{
  194.     Red / Blue           A-}
  195.     Red / Sml BH       A-D
  196.     Red / Med BH       A-F
  197.     Red / Lrg BH       A-G
  198.     Yellow Stars       A-H
  199.     Yellow / Blue      A-J
  200.     Yellow / Sml BH    A-K
  201.     Yellow / Med BH    A-;
  202.     Yellow / Lrg BH    A-:
  203.     Blue Giants        A-'
  204.     Blue / Sml BH      A-"
  205.     Blue / Med BH      AC-L
  206.     Blue / Lrg BH      A-X
  207.     Small Black Holes  A-C
  208.     Sml BH / Med BH    A-V
  209.     Sml BH / Lrg BH    A-,
  210.     Medium Black Holes A-<
  211.     Med BH / Lrg BH    A-.
  212.     Large Black Holes  A->
  213.   Three Primaries            Your ship orbits three stars
  214.     Red / Yel / Yel    A-/
  215.     Yel / Blue / Blue  A-?
  216.     Yel / SBH / SBH    A-DEL
  217.     Blue / MBH / MBH   A-ESC
  218.     BH: S / M / M      AC-B
  219.     BH: M / L / L      AC-G
  220.   Four Primaries            Your ship "orbits" four stars
  221.     Red Dwarves        AC-O
  222.     Yellow Stars       AC-P
  223.     Blue Giants        AC-Q
  224.     Small Black Holes  AC-R
  225.   Misc. Systems             Other solar systems
  226.     Black Ellipse      A-BACKSPACE
  227.     Wide Red Binary    AC-J
  228.     Wide Yellow Binary AC-N
  229.     Wide Blue Binary   A-`
  230.     Wide Sml BH Binary A-~
  231.     Wide Med BH Binary A-SPACE
  232.     Wide Lrg BH Binary A-TAB
  233.     Asteroid Swarm     AC-K
  234.   Asteroid?           A-A        Add asteroid to 0/1 star games
  235.  
  236. Options
  237.   Beginner Mode?       A-B        No random high-gravity systems
  238.   Random Game?           A-R        Randomize every round
  239.   Screen Wrap?           A-W        Choose screen wrap vs. bounce
  240.   Ship Thrust                Pick ship thrust
  241.     Low            A-_
  242.     Medium           A-+
  243.     High           A-|
  244.   Torp Velocity             Pick photon torpedo velocity
  245.     Low            A--
  246.     Medium           A-=
  247.     High           A-\
  248.   Torp Lifetime             Pick photon torpedo lifetime
  249.     Short           A-S
  250.     Medium           A-M
  251.     Long           A-L
  252.   Green Ship Opts
  253.     Joyport 0           A-1        Control from mouse port
  254.     Keyboard           A-2        Control from keyboard
  255.     Cloaking           A-3        Your ship turns invisible
  256.     Disruptor           A-4        Shoot a disruptive energy blast
  257.     Anomalizer           A-5        Fire an anomaly blast
  258.     Plasma Bolt        A-6        Hurl a ball of electric death
  259.     Quad Thrust        A-7        Accelerate at quadruple thrust
  260.     Seeker           A-8        Launch a seeker missile
  261.     Guided Torp        A-9        Shoot a remote-controlled torp
  262.     Cluster Pod        A-0        Fire pod that bursts into torps
  263.   Purple Ship Opts
  264.     Joyport 1           A-!        --Ditto--
  265.     Keyboard           A-@
  266.     Cloaking           A-#
  267.     Disruptor           A-$
  268.     Anomalizer           A-%
  269.     Plasma Bolt        A-^
  270.     Quad Thrust        A-&
  271.     Seeker           A-*
  272.     Guided Torp        A-(
  273.     Cluster Pod        A-)
  274.  
  275.  
  276.  
  277.                Weapons, etc.
  278.  
  279. Photon Torpedo -- shoot a simple missile in the direction your ship
  280.   is currently pointing.  A torpedo's initial velocity and lifetime are
  281.   controlled by Options sub-menus.  You may only have twelve torpedoes
  282.   in flight at one time, but torpedoes are otherwise unlimited.
  283.  
  284. Regular Shields -- a gray ring around your ship that absorbs Photon
  285.   Torpedos, Plasma Bolts, and Seekers, as well as providing limited
  286.   protection from collisions with asteroids and stars.    Torpedos erode
  287.   holes in your shields, exposing your ship to sudden destruction.
  288.   Contact with a star, opponent, asteroid, Plasma Bolt, Guided Torp,
  289.   Cluster Pod, Anomalizer, or Seeker will overload and destroy your
  290.   shield generator.  It also makes a "ping" sound.
  291.  
  292. Regular thrust -- accelerates your ship in the direction it points.
  293.   The thrust level is controlled by an Options sub-menu.  Fuel is
  294.   unlimited.
  295.  
  296. Hyperspace -- activated by pulling directly back on a joystick (no
  297.   diagonals!) or by pressing the RETURN key or 0 on the keypad.
  298.   Hyperspace will teleport your ship to a random location on the
  299.   screen.  It takes time for Hyperspace to warp you out and back.  Your
  300.   controls will be frozen during this time.  Also, the hyperspace warp
  301.   generator takes about two seconds to recharge and be available for
  302.   use again.
  303.  
  304. Full Shields -- when activated, your ship becomes a gray octagon,
  305.   totally immune to photon torpedoes.  Full shields are lost under any
  306.   circumstances that would overload your regular shields.  Your regular
  307.   shields are lost whenever the Full Shields are lost.    Your other
  308.   controls are frozen while Full Shields are up.  Full Shields only
  309.   stay up for a maximum of about two seconds before dropping.  There is
  310.   an about one-half second recharge delay.
  311.  
  312. Anomalizer -- shoot a blast of anomalistic probability.  When hit,
  313.   your opponent may have his velocity, direction, or extra weapon
  314.   randomized.  Or, your enemy may be forced into hyperspace, or simply
  315.   hit as if by a Plasma Bolt.  Or, maybe something else.....
  316.  
  317. Cloaking -- your ship becomes invisible, except for a slight wavering
  318.   in the background stars.  You may turn and accelerate while cloaked,
  319.   at the cost of becoming partly visible, but may not fire any weapons.
  320.   Cloaked ships are not tracked by Seekers.  There is an about one-half
  321.   second cloaking device recharge delay.
  322.  
  323. Disruptor -- fire a burst of disruptive EMF energy that travels at the
  324.   speed of light.  It causes no damage, but confuses your foe for a
  325.   moment.  Also, it will detonate other extra weapons.
  326.  
  327. Plasma Bolt -- shoots a large, writhing ball of energy.  Has a
  328.   limited range, and will be detonated by "just one" photon torpedo.
  329.  
  330. Quad Thrust -- accelerates your ship with four times its normal
  331.   acceleration.  Note that SSW does have a maximum allowed speed for
  332.   all objects (the "speed of light"), which is easy to reach using Quad
  333.   Thrust.
  334.  
  335. Seeker -- fires a missile which will seek out and hit your opponent.
  336.   In fairness to the other player, Seekers are very simple-minded.
  337.   Seekers can not track Cloaked ships (despite S.T. 6), but will keep
  338.   their last acceleration vector.
  339.  
  340. Guided Torp -- shoots a missile that you may control.  When your
  341.   extra weapon button is pressed, turn or accelerate commands will be
  342.   sent to the guided missile.  When released, turn or accelerate
  343.   commands are done by your ship, as usual.  You may re-press your
  344.   extra weapon button to control the guided missile as often as you
  345.   like.
  346.  
  347. Cluster Pod -- fires a pod that will burst in a spray of short-lived
  348.   shrapnel.  Direct hits are usually devastating.
  349.  
  350. You may not shoot a second Plasma Bolt, Seeker, Anomalizer, Guided
  351. Torp, Disruptor, or Cluster Pod until the first is gone, or until a
  352. one-quarter second recharge delay has passed.
  353.  
  354. Other notes:
  355.  
  356. Beginner Mode -- when playing the Random Game, the selected solar
  357.   system will not have too many high-gravity stars in it.
  358.  
  359. Random Game -- when turned on, SSW will randomly select a system and
  360.   extra weapon for each player.  You never get the same extra weapon
  361.   twice in a row.
  362.  
  363.  
  364.  
  365.               Ask Capt'n Quirk
  366.  
  367. And now that grizzled and grouchy veteran of Solar System Wars, Captain
  368. Quirk -- one who deals out insults, death, and run-on sentences in all
  369. directions, will answer some of your questions about game strategy!
  370.  
  371.    Thank you, worthless pandering announcer.  There's a big backlog
  372.    today, so let's go right to the first member of the audience:
  373.  
  374. Q: How can I keep from getting blown out of the sky whenever my enemy
  375.    gets Seeker and I get something wimpy like Cloaking?
  376.  
  377. A: What!  You've got Cloaking against Seeker and you come whining to
  378.    me?    Get yer pathetic rear-end back out in the arena and USE
  379.    Cloaking!  Once you are cloaked, Seekers can't track your ship!
  380.    However, they will keep their last heading, so if you uncloak to
  381.    fire off a burst of torpedoes, then recloak after a Seeker is coming
  382.    your way, be sure to accelerate away from your last course.  That
  383.    will fool 'em every time.
  384.  
  385. Q: Suppose I don't have Cloaking, but have Guided Torp instead?
  386.  
  387. A: Do I have to do all your thinking for you?  Haven't you noticed how
  388.    totally stupid Seekers are?  Just get something massive, like a star
  389.    or an asteroid between you and it and the Seeker will mindlessly ram
  390.    into it.  What's more, Seekers never consider gravity in their
  391.    attack programs and are easily confused by a Black Hole's gravity.
  392.  
  393. Q: I try all that and still get fried.    Now what?
  394.  
  395. A: Get out of here!  <draws and waves blaster menacingly>  I
  396.    haven't even mentioned shooting Seekers with torps, warping out of
  397.    danger with Hyperspace, outrunning them with Quad Thrust, or
  398.    blasting them with Plasma Bolts, Anomalizers, Guided Torps, or
  399.    Cluster Pods!
  400.  
  401.    Next questioner.
  402.  
  403. Q: If my ship can Cloak, why can't it fire Plasma Bolts when uncloaked?
  404.    I saw that very move on an old episode of Star T<<ZZAAPP!!>>
  405.  
  406. A: <blowing on blaster barrel> Sorry, sonny!  You tried to say the
  407.    "S.T." phrase, which is a registered trademark of Paramount
  408.    Corporation.  Don't even THINK of saying it on my show.
  409.  
  410.    Speaking of things we don't mention, <points blaster at camera>
  411.    I don't want six hundred of you weekend-SSW geeks out there writing
  412.    in and telling me that on S.T. 6 they had a modified torpedo track a
  413.    cloaked ship.  <blasts nearby table>  I know that, and thought it was
  414.    a stupid plot gimmick when I saw the movie.    Any sensor they could
  415.    mount on a torpedo should be available for phaser lock on the
  416.    Enterprise.    Lazy screenwriters!  <burns a microphone cable in two>
  417.  
  418.    <takes a sheath of papers from a trembling stagehand>
  419.    Our next question is from a fax:
  420.  
  421. Q: I have a hard time reaching the keyboard to use my Extra weapon or
  422.    Full Shields.  How do you manage?
  423.  
  424. A: Now that's a fair question.  Either get into the habit of reaching
  425.    for a shift key on the keyboard, or buy or build yourself some three
  426.    button digital joysticks.  If you can locate a nine wire joystick
  427.    cable and find some joysticks that have enough room inside to
  428.    install two normally-open push-buttons, then its easy to rewire an
  429.    existing joystick.
  430.  
  431.    One more thing:  take the usual precautions when dealing with hot
  432.    solder, connecting anything homemade up to your Amiga, etc.  If
  433.    some pitiful excuse for a lawyer shows up on my doorstep, trying to
  434.    serve me a lawsuit because I didn't warn you not to do something
  435.    truly stupid, then I'll burn the lawyer down where he stands and
  436.    spit on the ashes.
  437.    <waves blaster, picture bounces as cameraman dives for cover>
  438.    But, I've already been warned twice that I'm over my Lawyer limit
  439.    for this season -- so don't screw up, OK?
  440.  
  441.    Now a question from the audience.
  442.  
  443. Q: Why are the orbits around Blue / Medium, Small / Medium, Yellow /
  444.    Large, Red / Medium, and Medium / Large Binaries so unstable,
  445.    especially in a Bounce game?
  446.  
  447. A: Good question -- I won't kill you.
  448.    <vaporizes an innocent bystander instead>  Those orbits have
  449.    resonances with those of their primaries.  That, along with the crude
  450.    approximation that passes for gravity in SSW does the rest.    Anyway,
  451.    what do you care about orbits?  Are you a pilot, or what?
  452.  
  453.    What is the younger generation coming to?  For Zelkor's sake, use
  454.    some imagination, will you?
  455.  
  456.    This will be our last question today.  From the audience:
  457.  
  458. Q: I had just about peeled all the shields from my opponent while only
  459.    taking one or two hits myself, and was coming back in from the
  460.    Twilight Zone to finish him off, when I blew up for no reason at
  461.    all.  What happened?
  462.  
  463. A: At last, a question worth answering!  Remember that while you are in
  464.    the Twilight Zone the Amiga hardware collision detection circuitry
  465.    isn't checking for collisions.  In the Twilight Zone, everyone and
  466.    every torpedo is safe.  However, that also means that a torpedo that
  467.    ordinarily would be absorbed by your shields has a chance of
  468.    drifting inside your shields, and may still be there when you emerge
  469.    from the Twilight Zone.  If that happens to you -- BOOM!
  470.    <Blasts an off-camera object>  To avoid this you can use Full
  471.    Shields on every entrance or exit from the Twilight Zone.
  472.    Otherwise, just be very careful out there.
  473.  
  474.  
  475. That's all for today, but be sure to listen to the next exciting
  476. episode of "Ask Capt'n Quirk!"
  477. <fade to black as the SWAT team tackles Captain Quirk>
  478.  
  479.  
  480.  
  481.        Known Offences Against the OS 2.0 Style Guide
  482.  
  483. * Turns off the mouse when a player is using Joyport 0, or a four or
  484.   four asteroid solar system is on the screen.
  485.  
  486. * Topaz 8 is hard-coded into the menus, requesters, and opening screen.
  487.  
  488. * Not Internationalized.
  489.  
  490. * Uses raw key events without proper mapping.
  491.  
  492. * SSW's screen does not have drag or depth gadgets.  (See the Screen
  493.   To Back and Screen To Front menu entries for a replacement.)
  494.  
  495. * The Quit and About requesters are not draggable or depth arrangable,
  496.   and do not set a "Wait" pointer in the main window when activated.
  497.  
  498. * Game settings cannot be saved or loaded.
  499.  
  500. * Doesn't read Tool Types from icon files.
  501.  
  502. * Pays no attention to Shell command line arguments.
  503.  
  504.  
  505.  
  506.              Known Deficiencies
  507.  
  508. * On my A1000 running v1.3, the menu command keys for RightAmiga-3 and
  509.   RightAmiga-Control-Q seemed to have swapped functions.  It works just
  510.   fine under v2.04+, or using the mouse, so I assumed it was a v1.3 bug
  511.   in menu command processing and rearranged the menu linked lists to put
  512.   the joyport select entries in front of the system select entries.
  513.  
  514.   Summary:  Beware!  Under v1.3 you may get wierd results when selecting
  515.   solar systems using the RightAmiga and Control keys.    If that happens,
  516.   switch control of joyport 0 back to the mouse and try again.
  517.  
  518. * On an A3000 running an old version of 2.0, one of the beta testers
  519.   reported that occasionally when an Anomalizer sprite crosses the upper
  520.   or lower screen boundaries, its ship will flash white, or worse, the
  521.   Copper list for the Anomalizer sprite gets corrupted and you see a
  522.   long stripe of chip RAM.  Solution:  upgrade!
  523.  
  524. * The use of keyboard screen dragging will misalign the sprites with
  525.   SSW's screen.
  526.  
  527. * Uses hardware collision detection for all collisions except between
  528.   photon torpedoes -- the Twilight Zone on Wrap games is a safety zone
  529.   from all collisions.    Also, because there are no detection bits for
  530.   collisions between members of a sprite pair, your own Plasma Bolts,
  531.   Seekers, Guided Torps, etc won't kill you.
  532.   (Twilight Zone:  the off-screen part of the game playfield.)
  533.  
  534. * I can find no easy way of knowing whether the SSW screen is in the
  535.   foreground, at least not without digging deep into private Intuition
  536.   data.  This makes it hard for the Copper interrupt routine to
  537.   know whether to consume the Copper interrupt, or not.  So I play
  538.   around with the ScreenToFront and ScreenToBack functions and window
  539.   activation events to try to insure that either SSW's screen is in
  540.   front of all others, or that it is in back and the game is paused.
  541.  
  542. * Because of the fact that SSW jams its own values into the posctldata
  543.   fields of sprites, and uses several low-level hardware registers, SSW
  544.   may fail with future custom chips.  Amazingly, it works with the AGA
  545.   chip set in compatability mode!
  546.  
  547. * Since SSW uses a quick-and-dirty approximation for faster gravity
  548.   calculations, some star systems are unstable.  Trinary systems will
  549.   hit the screen edge after about 10 to 13 minutes.  This is almost
  550.   never a problem, since most rounds last under two minutes.
  551.  
  552. * Uses ADCMD_LOCKs on the audio device, so it will release a requested
  553.   channel, then attempt to reallocate it.  All this is according to the
  554.   rules in the RKM, which allow sharing of audio channels.  However,
  555.   some programs don't wait long enough for SSW to release its audio
  556.   locks, and fail.
  557.  
  558.  
  559.  
  560.            Potential Portability Problems
  561.  
  562. * The ScreenToBack menu selection uses a probably non-portable kludge
  563.   to activate the foremost window in the Workbench screen.
  564.  
  565. * Uses hardware registers for sprite/playfield collision detection, and
  566.   changes the POTGO register to use two or three button joysticks.
  567.  
  568. * Directly modifies the posctldata fields of sprites, so anything that
  569.   shifts SSW's view origin will confuse the sprite positioning.
  570.  
  571. * Reads hardware for both joysticks.
  572.  
  573. * Uses RAWKEY events for the keyboard, so no keymap translations, or
  574.   localization.
  575.  
  576. * Installs its own Copper interrupt, and may not work well with other
  577.   Copper interrupts.
  578.  
  579. * Assumes that Intuition screens use standard BitMaps.
  580.  
  581. * Bypasses the graphics library to read and write photon torpedoes, but
  582.   uses MENUVERIFY and REQVERIFY to synchronize with Intuition.
  583.  
  584. * The structure used by the Copper interrupt handler isn't in PUBLIC
  585.   memory, as per the manuals.  This won't matter until virtual memory
  586.   is attempted by Commodore.
  587.  
  588. * Sets and clears the CHECKED flag directly in MenuItems, although
  589.   protected by Disable/Enable.
  590.  
  591.  
  592.  
  593.                Implementation Details
  594.  
  595. * Changes the joyport 0 input device from Mouse to Custom, when told to
  596.   use a joystick in port 0, or when four sprite systems are on the
  597.   screen.  This change may be confusing to folks, especially for the 4
  598.   sprite case.
  599.  
  600. * Sets up a Low-Res Dual Playfield screen with two bit-planes in either
  601.   PAL or NTSC mode, based on presence of the PAL bit in GfxBase.  This
  602.   means that a NTSC A3000 will display a NTSC screen, even if it is
  603.   displaying a PAL Workbench.  Sorry, I couldn't find a legal way to
  604.   override this, since any attempt to use NTSC/PAL Display IDs is set
  605.   back to DEFAULT_MONITOR when doing the MakeScreen/RethinkDisplay
  606.   after attaching the Dual Playfield.
  607.  
  608. * Installs a Copper Interrupt Server and adds a Copper interrupt to the
  609.   screen.
  610.  
  611. * Sorry, can't use AutoRequest or any other window-based requesters for
  612.   the few requesters SSW uses.    I need the WINDOWACTIVATE and
  613.   deactivate events to tell me when SSW has been pushed into the
  614.   background.  This means using layer-based requesters that don't seem
  615.   to be draggable.  Yet another offense against the Style Guide.
  616.  
  617. * Allocates audio channels at priority -50, the highest standard level
  618.   for sound effects.
  619.  
  620.  
  621.  
  622.       Legal Garbage and Disclaimers, In Plain English
  623.  
  624. Solar System Wars (SSW) will not cure world hunger.  It will not bring
  625. global peace.  I do not even guarantee that it is fun to play, or does
  626. anything more useful than waste CPU cycles.
  627.  
  628. If you run this software and your disk drive bursts into flames, or
  629. your 1000 page dissertation on "Why Entropy Is Politically Incorrect"
  630. gets corrupted, or something else goes drastically wrong, you will get
  631. my sympathy but nothing else.  I will not provide any money or other
  632. kind of compensation, no matter how valuable the hardware, software, or
  633. data that you believe SSW, or SSW's interaction with some other piece
  634. of software, has destroyed.
  635.  
  636. If you, or whoever you got SSW from, has hacked, patched, or otherwise
  637. modified this package, then there is no telling what it will do, and I
  638. will not be responsible for any part of any problems such changes
  639. cause.
  640.  
  641. If you don't like these limitations on my liability, then do not run
  642. Solar System Wars.  If you do run SSW, then you have agreed to these
  643. limitations.
  644.  
  645. Moreover, while I retain the copyright to Solar System Wars, this
  646. version of SSW may be freely copied for non-commercial purposes, as
  647. thanks for all the fine public domain and freely distributable software
  648. that I have used over the years.  No one may charge more for your copy
  649. of SSW than Fred Fish charges for one Fish disk.  SSW may eventually go
  650. Shareware, in which case there may be registration fees.
  651.  
  652. (Aaarrrggghhhh!  I hate the paranoid attitude such legalisms require.)
  653.  
  654.  
  655.  
  656.            Source Code Availability and Bug Fixes
  657.  
  658. I'm not making the source code available until I decide if I want to
  659. make SSW shareware or not.  Enjoy this copy entirely guilt-free,
  660. without any nagging requests to register, to send money anywhere, or to
  661. make Molotov Cocktails in your basement for the Revolution (any
  662. Revolution).
  663.  
  664. The only thing I ask is that you mail to me any bug reports, great
  665. ideas, and general impressions you have about SSW.  If I do decide to
  666. release the source code, I'd like all the obvious bugs fixed first.
  667.  
  668. My address is:
  669.  
  670.         James Cleverdon
  671.         16465 S.W. Estuary Dr., Apt. 101
  672.         Beaverton, OR 97006
  673.         USA
  674. or
  675.         jamesc@sequent.com
  676.  
  677. Bug fixes will be released via Fred Fish, AmiNet, and the other usual
  678. methods.
  679.  
  680. Ports for other machines, especially IBM PC clones?  Get real!    SSW
  681. relies too heavily on the Amiga custom chips.
  682.  
  683.  
  684.               Acknowlegements
  685.  
  686. Thanks to my play testers:  Clark MacDonald who had the 9-wire cables
  687. and let me crash his A3000, David Roemer for lots of good ideas
  688. (especially the random game option), Stewart Boutcher for deadly fire
  689. and French Vanilla ice cream, and all the others including the Bush
  690. Harbor Day gang.
  691.  
  692.  
  693.  
  694.                File Manifest
  695.  
  696. Here are the files you should have received:
  697.  
  698.        Name      Size       What
  699.  
  700.     Menu.keys      2260    (menu keys text)
  701.     Menu.keys.info       734    (its icon)
  702.     Product-Info      2038    (database description file)
  703.     SSW         55736    (the program)
  704.     SSW.info       463    (the OS 2.0+ icon)
  705.     SSW.doc      40604    (this document)
  706.     SSW.doc.info       735    (its icon)
  707.     SSW.grv     123904    (the gravity table)
  708.     SSW.snd      33284    (the sounds file)
  709.  
  710.  
  711.              SSW.snd File Info
  712.  
  713. Here is how you can add your own 8SVX sounds to SSW.  If you're not
  714. familiar with the internals of IFF files, see Appendix A in the Devices
  715. Manual.  Lacking that, the IFFparse Library chapter in the 2.0 or higher
  716. Libraries Manual will help.
  717.  
  718. SSW.snd must be an IFF CAT or LIST file containing at least six
  719. correctly NAMEd FORM 8SVX chunks:  bounce1, explode1, fire1, hyper_in1,
  720. hyper_out1, and thrust1.  (Actually, if the '1' suffix is missing, SSW
  721. assigns the sound to player 1 anyway.)    Here's the complete list of
  722. sounds:
  723.  
  724.  bounce1, bounce2    - the "ping" sound made when your shields blow
  725.  explode1, explode2    - Bang!  You're dead!
  726.  fire1, fire2        - weapons firing sound
  727.  hyper_in1, hyper_in2    - "warping in" sound
  728.  hyper_out1, hyper_out2 - "warping out" sound
  729.  quad1, quad2        - the Quad Thrust sound
  730.  shield1, shield2    - photon torp erodes shields sound
  731.  thrust1, thrust2    - ordinary thrust sound (repeatable)
  732.  torp_die1, torp_die2    - the sound made when a torpedo expires
  733.  
  734. The supplied SSW.snd contains:    bounce1, bounce2, explode1, explode2,
  735. fire1, fire2, hyper_in1, hyper_out1, thrust1, and thrust2.
  736.  
  737. Where do the other sounds come from?  If a player1 sound exists, but
  738. the corresponding player2 sound doesn't, SSW will copy 1 to 2.  The
  739. quad, shield, and torp_die sounds are derived from the thrust, fire,
  740. and explode sounds, respectively, if needed.
  741.  
  742. The 8SVX FORMs can appear in any order; all SSW cares about is the NAME
  743. chunk in each one.  To avoid dependence on iffparse.library, I don't
  744. use it.  (iffparse didn't come with OS 1.3.)
  745.  
  746. I did my own IFF parser.  So, don't get too cute with weird IFF files.
  747. To avoid the need for a large stack, only some chunk types are allowed,
  748. namely CATs can contain LISTs and FORMs, but nested CATs will be
  749. skipped.  LISTs may contain PROPs and FORMs, but nested CATs and LISTs
  750. are skipped.  All FORMs but 8SVX are skipped.  Only the NAME, VHDR, and
  751. BODY chunks in an 8SVX are read.
  752.  
  753. Whoops!  In SSW v1.37, I recommended using IFFar, on Fish disk # 162,
  754. to modify CAT files.  Unfortunately, I forgot that it *requires* the
  755. silly, unregistered, FNAM chunks that it inserts into each FORM as it.
  756. adds them to the CAT file.  Instead, use IFFMaster, by Kay Drangmeister,
  757. to extract each FORM into a seperate file.  Then, you can use IFFar, or
  758. some other tool, to reassemble your selection of original and new 8SVX
  759. FORM files into a new SSW.snd CAT file.
  760.  
  761. Please note that SSW has some fixed ideas about the volume and repeat
  762. count of the various sounds.  In particular, the thrust and quad sounds
  763. are set to repeat forever, so avoid any harsh transitions between the
  764. end and the start of the sample.  Also, the hyper_out sound should last
  765. about the same time as it takes a ship to go through the "warp out" part
  766. of a hyperspace jump, or the sound will be chopped by the hyper_in
  767. sound.
  768.  
  769.  
  770.  
  771.           Instructions for Three-Button Joysticks
  772.  
  773. First, a crude ASCII picture of the end of a joystick cable.  This is
  774. the DB-9 that plugs into your Amiga, taken from the Hardware Guide:
  775.  
  776.      _____________________
  777.     /              \     The numbers are pin numbers.
  778.     |  5   4   3   2   1  |
  779.      \             /        Viewed as you would look into
  780.       \  9     8   7     6  /        its end.  Note:  female pins.
  781.        \_______________/
  782.  
  783.     Pin  Joystick    Mouse        * = optional button
  784.  
  785.      1   forward   V-pulse
  786.      2   back      H-pulse
  787.      3   left      VQ-pulse
  788.      4   right     HQ-pulse
  789.      5   button3*  middle button*
  790.      6   button1   left button
  791.      7   +5V       +5V
  792.      8   GND       GND
  793.      9   button2*  right button
  794.  
  795. All you have to do is add a normally-open push-button with one of the
  796. button's terminals connected to pin 8 (ground), and the other connected
  797. to pin 9 (button2), then add another button between pin 5 (button3) and
  798. pin 8 (ground).  Push the first button, which will ground pin 9, and
  799. fire a plasma bolt.  Easy?  Maybe.
  800.  
  801. Standard joystick cables don't include pins 5, 7, or 9.  I was lucky
  802. enough to have a friend who had a bundle of premade DB-9 cables with
  803. all 9 wires left over from a previous job.
  804.  
  805. You may not be so fortunate.  Check electronic surplus stores.    Look
  806. carefully to make sure that there are pins in all nine holes.  Get a
  807. continuity tester and verify that every wire you need is really there.
  808.  
  809. Another problem is finding a joystick that has enough room to allow
  810. extra buttons.    Also, it is hard to find a small push-button that is
  811. both reliable and durable, plus has a button big enough not to leave
  812. an imprint in your thumb at the end of a difficult game.
  813.  
  814. I'm assuming that you have at least some skill at electronics.  If not,
  815. check with someone who is skilled, or read the basic-technique articles
  816. in an electronics hobby magazine.  If you've done all that, then I
  817. won't need to tell you:
  818.  
  819. * Don't burn yourself.
  820.  
  821. * Be sure to insulate all your solder joints with electrician's tape or
  822.   heat-shrink tubing.
  823.  
  824. * Test the finished product with a continuity tester.  (A multi-meter
  825.   set to 'Ohms' or 'Continuity', or even a battery and a light bulb.)
  826.   Connect it between pin 9 and pin 8 on the joystick DB-9 connector.
  827.   The tester should indicate a low-resistance circuit when the new
  828.   button2 is pushed.  When you release the button, the tester should
  829.   indicate very high (or infinite) resistance.  Then test button3 by
  830.   hooking the tester between pin 5 and pin 8, and doing the test again.
  831.  
  832. * Now test for short circuits.    When no buttons are pressed and the
  833.   stick is not being pushed, then pin 8 should not be connected to any
  834.   other pin on the connector.
  835.  
  836. * If you are installing pull-up resistors, or SPDT switches (described
  837.   below), check that pin 7 is connected *only* to pins 5 and 9 when no
  838.   buttons are pressed.    If you aren't installing pull-ups, then pin 7
  839.   should not be connected to *any* other pin regardless of whether any
  840.   button is pressed or not.
  841.  
  842. About the only way you can damage your Amiga is by somehow connecting
  843. the +5V line (pin 7) to ground (pin 8).  Test for this mistake even if
  844. you aren't adding pull-up resistors as described below.  Be happy by
  845. being paranoid about Murphy's Laws.
  846.  
  847. Important Note:  Some older Amigas, which include my 1000 and a 2000
  848.  owned by a SSW player in Germany, have problems with the second and
  849.  third buttons.  Basically, the pull-ups for those pins on the joystick
  850.  ports are weak or entirely defective.    While mice use these pins
  851.  without trouble, mice contain their own pull-ups and don't rely those
  852.  of the Amiga.
  853.  
  854.  How do you know if your Amiga has this problem?  You've got it if you
  855.  push the second or third button, release it, and SSW acts as if you
  856.  are still pushing the button.    Or, if after about 15 minutes of not
  857.  pushing the button, SSW suddenly believes that it *is* pushed.  For
  858.  further evidence, send the SSW screen to the back with the A-] key.
  859.  When you bring the SSW screen back to the front, SSW will now realize
  860.  that you've released the button.
  861.  
  862.  What to do?  Add pull-up resistors to your joystick.  Connect a 470
  863.  ohm or 1K ohm resistor between pin 7 (+5V) and pin 9 (button2).  Add
  864.  another one between pin 7 and pin 5 (button3).
  865.  Or, if you are using single-throw double-pole buttons, you can connect
  866.  the common terminal to the button pin, hook the normally-closed
  867.  terminal to pin 7, and hook the normally-open terminal to pin 8.  That
  868.  way, when the button is released, the pin will be connected to +5.
  869.  When you push the button, it connects the pin to ground.  That is what
  870.  we want.
  871.  
  872. As long as I'm writing about joysticks, let me pause for a short curse
  873. at Sega.  Why did they swap the +5V and Select pins from the de-facto
  874. standard that had been long established by Atari, Commodore, etc?  Were
  875. they afraid that they might have a slightly larger market and make too
  876. much money?  &$!*?@ Sega bozos!
  877.  
  878. The upshot of the previous paragraph is that an Amiga can't read two of
  879. the buttons on Sega gamepads because they put the +5V supply on pin 5,
  880. and put their Select input on pin 7.  With Select high, you can read
  881. the B and C buttons.  With Select low, you can read A and Start.
  882.  
  883. But, that is exactly opposite of what we want!    I can't lower pin 7
  884. because it is the Amiga's +5 supply.  (Yes, I pulled my gamepad apart
  885. to make sure that the pinout is really wrong.)
  886.  
  887. I have two different brands of gamepads:  one by Sega, and another
  888. generic pad.  Amazingly, they both work using power provided by the
  889. pull-up on pin 5.  Of course, they both use CMOS muxes internally,
  890. which take very little power.  So, although not guaranteed, many --
  891. maybe even most -- Sega gamepads will work as two-button joysticks.  To
  892. use them as three-button joysticks requires an adapter or some internal
  893. rewiring.  Maybe I'll buy or build an adapter, and add the interface
  894. code when I get over being angry at %!$?* Sega.  Maybe not.
  895.  
  896.  
  897.  
  898.                 References
  899.  
  900. "How to Implement Space Wars (or Using Your Oscilloscope as a
  901.  Telescope)" by Dave Kruglinski, Byte, 1977??
  902.  
  903.  
  904.  
  905.               Thoughts for the Future
  906.  
  907. * Many analog joysticks have two or three buttons.  Since I already have
  908.   to go directly to the hardware for digital joysticks, maybe I can
  909.   support analog as well.....
  910.  
  911. * Can the Planet Cruncher be worked in somehow?  How about a Tholian
  912.   web?
  913.  
  914. * What about a "Death Blossom" kind of weapon that shoots torpedos in
  915.   eight different directions?
  916.  
  917. * Would a Tractor Beam be useful?  Or, a Pressor Beam?
  918.  
  919. * Maybe some way to repair your shields, like don't push a button for
  920.   30 seconds per pixel repaired.  (Of course, right now you can take a
  921.   one-in-sixteen gamble and let your opponent hit you with an
  922.   Anomalizer.)
  923.  
  924. * Get real images of asteroids for the asteroid sprites.
  925.  
  926. * Would it be worthwhile to allow customized space ships?  Can I afford
  927.   the CPU cycles on slow Amigas?
  928.  
  929. * Maybe go from a shield erosion model, to a shield heating model, like
  930.   in "The Mote In God's Eye" or E. E. Smith's Lensman series.  Of
  931.   course, to do that right I would have to include heating from stars.
  932.   This should be roughly proportional to the sum of the magnitudes of
  933.   the gravitational force vectors, except for black holes.  And what
  934.   happens when you finally do blow the shields?  BOOM?    Or just lose
  935.   them?
  936.  
  937.  
  938.  
  939.            Version Log
  940.  
  941.  
  942.     == v1.37 ==
  943.  
  944. * Now support for three-button joysticks!
  945.  
  946. * Everyone now gets Full Shields all the time, controlled by the third
  947.   button, or the left/right Alt key.
  948.  
  949. * New extra weapons!  Get ready for the Anomalizer, Disruptor, Guided
  950.   Torp, and the Cluster Pod!  Sadly, Flip Ship has gone to that bit
  951.   bucket in the sky.
  952.  
  953. * Four star solar systems!
  954.  
  955. * New Beginner Mode, which keeps the Random System mode from picking
  956.   high-gravity solar systems.
  957.  
  958. * Tested on A1000 (OS 1.3), A500 (OS 1.3), and A3000 (OS 2.1).
  959.   Reports indicate that SSW runs AGA machines.    Wow!  Hats off to
  960.   Commodore for such great hardware compatibility!  SSW is free of
  961.   Enforcer hits on an A3000.
  962.  
  963. * Each player now gets twelve active torpedos instead of nine.
  964.  
  965. * Enough already!  I've changed the random game code so that you'll
  966.   never have the same extra weapon twice in a row.  Satisfied?     8-)
  967.  
  968. * The Seeker and Cluster Pod sprites are larger and easier to see.
  969.  
  970. * Improved Seeker code.  They no longer are useless in high gravity
  971.   systems.
  972.  
  973. * SSW's sound effects now come in an IFF file!  Add your own sounds!
  974.   Amaze your friends!  Confound your enemies!
  975.  
  976. * Fixed the sprite glitching problem on slower machines.
  977.  
  978. * SSW no longer adds an input event handler to eat mouse events.  No
  979.   more compatability problems with Commodities or other handlers.
  980.  
  981. * Added a New Game requester that shows up after someone wins.
  982.  
  983. * Added potgo.resource code to play by the rules.
  984.  
  985. * Compiled with cback.o, so SSW will automatically put itself in the
  986.   background.
  987.  
  988.     == v1.14 ==
  989.  
  990. * First public release!
  991.  
  992. * All new support for two-button joysticks!
  993.  
  994. * Everyone now gets Hyperspace all the time, as well as an extra weapon
  995.   from the Options menus!
  996.  
  997. * Double-thick shields for EXTRA protection!
  998.  
  999. * Improved color register handling for superior performance without
  1000.   the earlier glitching problems!
  1001.  
  1002. * Much smoother motion, because now SSW does one game cycle (complete
  1003.   with all gravity calculations) for every screen frame, even on
  1004.   standard A1000 and A500 machines!  Yes, that's 50Hz for PAL and 60Hz
  1005.   for NTSC.  The only exception is for cycles involving sprite
  1006.   collisions, which take two screen frames per game cycle.
  1007.  
  1008. * All of the gravity and update subroutines have been redone in
  1009.   hand-optimized assembly code for extra speed, plus the added bonus
  1010.   of now fitting entirely in the instruction caches of 68020 and 68030
  1011.   CPUs!
  1012.  
  1013. * Tested on A1000 (OS 1.3), A500 (OS 1.3), and A3000 (OS 2.04).
  1014.   Should run under OS 2.1.  Will almost certainly break on an AGA chip
  1015.   machine.  Is free of Enforcer hits on A3000.
  1016.  
  1017. * Multi-tasks.    (SSW should be the highest priority CPU-intensive task
  1018.   for smoothest game play.)
  1019.  
  1020.     == Earlier ==
  1021.  
  1022. * Before the beginning of time.  Delete any SSWs before 1.14.
  1023.